# 文件结构

分为前端部分和后端部分，总体相应的文件结构为：

* index.js                   # 作为第三方库暴露的Skeleton类定义
* server.js                  # 作为独立部署时的单实例启动入口
* start.js                   # 作为独立部署时的多实例启动入口
* config/                    # 为方便开发而预定义的配置
    * config.dev.js          # 测试环境配置
    * config.prod.js         # 生产环境配置
    * config.default.json    # 默认配置
* backend/                   # 后端
    * domain/
    * router/
    * service/
    * utils/
    * index.js
* frontend/                  # 前端
    * src/                   # 安装页面、后台页面等的源码
    * views/                 # 视图
    * static/                # 静态资源文件夹，编译后的js文件也放这里
* test/                      # 测试
* docs/                      # 文档
* db-init-data               # 用于初始化数据库的数据

为了方便开发，将预定义的配置放入`/config`文件夹下。具体功能开发的后端代码置入`backend/`文件夹下，前端代码置入`frontend/`文件夹下。

## 后端部分

文件夹结构为：
```
* backend/
    * config/            # 配置功能模块，对外暴露存、取接口
    * domain/            # 对领域的抽象，定义各模型实体及其之间的关系
    * service/           # 服务
        * account/       # 账号服务，如角色服务、注册服务
        * email/         # 邮件服务
        * install/       # 安装
        * cms/
            * movie/     # 电影处理服务，如截图
            * post/      # 文章服务
            * ebook/     # 电子书服务
        * ...
    * router/            # 路由器相关
        * system/        # 系统相关
        * common/        # 常用
        * session/       # 会话支持
        * cms/           # cms相关
        * ...
    * utils/             # 小功能
```

## 前端部分

文件夹结构为：

* frontend/
    * views/
    * src/
    * static/

### views

* 网站后端模板，不会被浏览器访问到。
* 默认的服务端模板语法是`nunjucks`，类似于PHP的`twig`。

### static

网站的静态文件夹，存放的文件包括

* css
* images
* js
* 其他静态文件，如`ueditor`编辑器的前端文件

此文件夹下的内容会被浏览器任意访问，不要存放敏感信息。

note: `src/`文件夹的源码文件，会被`webpack`打包后放入这里相应的路径下。

### src

前端源码，不可被浏览器直接访问。源码经过`webpack`打包后会放入`static/`下的相应目录里。

此部分主要涉及的后台页面的前端源码、安装页面的前端源码

* 入口文件：与 `webpack.config.js` 的 `entry` 配置相对应。
* 模块化： React组件化开发。